Docker 创建SSH服务的镜像
1 背景知识
本文如何在容器中安装 Linux SSH 服务。
2 安装SSH服务
2.1 准备工作
首先,使用 almalinux:latest
镜像创建一个容器:
docker run -h c82 -itd -p 2222:22 --name c82 --privileged=true -u root almalinux:latest /usr/sbin/init
2.2 安装SSH服务软件
docker exec -it c82 bash
yum install -y passwd openssh openssh-server net-tools
3 配置SSH服务
- 如果要正常启动
SSH
服务,则目录/var/run/sshd
必须存在。
mkdir -p /var/run/sshd
- 需要增加
sshd
服务所需的秘钥。
ssh-keygen -q -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key -N ''
ssh-keygen -q -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ''
ssh-keygen -t dsa -f /etc/ssh/ssh_host_ed25519_key -N ''
- 启动ssh 服务
/usr/sbin/sshd -D &
Note
如果启动无报错则配置成功。
3.1 查看SSH服务的端口
netstat -tunlp
3.2 设置root密码
echo "root" | passwd --stdin root
3.3 编写启动脚本
vi /run.sh
#!/bin/bash
/usr/sbin/sshd -D
chmod +x run.sh
4 制作镜像
docker commit c82 ssh_server:latest
5 验证SSH服务
5.1 启动容器
- 使用镜像内部指定run.sh 命令。
docker run -p 10000:22 -itd ssh_server:latest /run.sh
5.2 连接容器的SSH服务
在宿主主机或其他主机上上,可以通过SSH
访问10000
端口来登录容器。
ssh root@192.168.10.235 -p 10000